Conversation
Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/dee4acf8-b202-4573-95cc-3c68fed13e01 Co-authored-by: bryanchen-d <41454397+bryanchen-d@users.noreply.github.com>
Set ExplicitBucketBoundaries advisory parameters on gen_ai.client.operation.duration and gen_ai.client.token.usage histograms per the OpenTelemetry GenAI semantic conventions, instead of relying on SDK default buckets. Fixes #311905
…12231) * SSH: fall back to default identity files when agent lacks the key Switch SSH auth to ssh2's authHandler callback, walking an ordered queue of attempts: explicit privateKeyPath -> agent (if SSH_AUTH_SOCK) -> each existing default identity file. Mirrors OpenSSH client behavior so a host that accepts ~/.ssh/id_rsa still connects when the agent doesn't have it loaded, without needing an explicit IdentityFile in ssh config. Also import proper ConnectConfig typings from ssh2 instead of using Record<string, unknown>. (Written by Copilot) * Address Copilot review: agent forwarding socket, methodsLeft mapping, KeyFile fail-fast - _connectSSH: when agentForward is enabled, also set connectConfig.agent to SSH_AUTH_SOCK so ssh2 actually has a socket to forward to. Warn when forwarding is requested without an agent available. - makeAuthHandler: map 'agent' to 'publickey' for the methodsLeft filter, since SSH servers advertise 'publickey' (agent is just a publickey-flavored method at the protocol level). Tightened types to ssh2's AuthenticationType / AnyAuthMethod so this is enforced by the compiler. - _buildAuthAttempts (KeyFile mode): fail fast with a localized error if privateKeyPath is missing or unreadable, instead of silently falling through to a generic auth failure. - Added 3 unit tests covering the new behaviors. (Written by Copilot)
…2199) * agentHost: resolve user shell environment for agent host process Spawn the agent host with the user's resolved shell environment merged in (PATH and friends from the login shell), matching what other VS Code processes do via getResolvedShellEnv. Without this, tools and terminals launched by the agent host on macOS/Linux GUI launches don't see the user's PATH. Both ElectronAgentHostStarter and NodeAgentHostStarter now resolve the shell env before spawning. IAgentHostStarter.start() is now async; the process managers await it and guard against being disposed mid-await. In the Electron starter, the renderer's createMessageChannel request could race ahead of the now-async start() and call utilityProcess.connect() before utilityProcess.start() had run, silently dropping the MessagePort and leaving the renderer with no agents. _onWindowConnection now awaits a DeferredPromise that completes once the utility process has actually been spawned. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * agentHost: address Copilot review feedback - ElectronAgentHostStarter: spread shellEnv after process.env so the resolved login shell PATH actually wins over the GUI-launched env. (NodeAgentHostStarter is fine as-is: ipc.cp.Client merges process.env before the options env, so shellEnv there already wins.) - AgentHostProcessManager._start / ServerAgentHostManager._start: wrap the body in try/catch so a rejection from starter.start() doesn't surface as an unhandled promise rejection. Reset state on failure so future starts can retry. Server manager applies the same MaxRestarts policy as the unexpected-exit path. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
…s-error Suppress rate-limit/quota-exceeded errors from chatAgentError telemetry
Improve workspace picker: flat recency order, grouped browse actions, right-aligned descriptions - Remove source grouping from workspace picker; show a flat recency-sorted list - Browse actions grouped by 'group' property instead of label comparison - When multiple providers share a group, show a single entry with a submenu - Each browse action carries an optional description (Local, GitHub, provider name) - Browse action descriptions shown right-aligned using group title in inline-description mode - ActionList: submenu items use action icon via group.icon - ActionList: fix group-title right-alignment in inline-description mode (margin-left: auto) - ActionList: remove fixedWidth option (no remaining consumers) - ISessionWorkspaceBrowseAction: add optional description and group fields Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: add tip banner for sub-session creation Shows a dismissable tip above the chat input when a new sub-session is created, explaining what a sub-session is and how to use it. The tip uses the same visual pattern as the core chat tip widget and persists dismissal to the user's profile storage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * address PR feedback: accessibility and touch support - Use native <button> instead of <a> with role=button for dismiss control - Add Gesture.addTarget and TouchEventType.Tap listener for iOS/touch - Add touch-action: manipulation and reset native button styles in CSS Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: use DisposableStore instead of Disposable.from Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…312248) Renames `sessions.chatSessions.claude.enabled` to `sessions.chat.claudeAgent.enabled` to align with the `github.copilot.chat.claudeAgent.enabled` convention. Enables the setting by default and removes the experimental tag and warning text from the description. Updates tests to reflect the new default.
Clean up old snapshots
…isory-swallow Revert "Use main eslint config for copilot extension too"
Use stable group key for SubmenuAction id and fix group doc comment - SubmenuAction id uses the non-localized group key from browseByGroup map instead of the localized label to ensure stable ids across locales - Update ISessionWorkspaceBrowseAction.group JSDoc to clarify it is a non-localized key, not a display label Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fix markdown preview scroll feedback loop (#303765)
fix: use GenAI semconv explicit bucket boundaries for OTEL histograms
…12246) agents: add 'Debug Local Agent Host Process In Dev Tools' command Adds a Developer command, available in both VS Code and the Agents app, that opens a Chrome DevTools window attached to the local agent host utility analogous to the existing 'Debug Extension Host Inprocess Dev Tools' command. The agent host process enables its inspector live via node:inspector on demand, so no restart is required. The renderer reaches the inspector URL through the existing agent-host IPC channel. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…12018) * fix: exclude synthetic user messages from chat history processing Co-authored-by: Copilot <copilot@github.com> * fixes --------- Co-authored-by: Copilot <copilot@github.com>
When a tool call produces file edits, the onFileEdits callback already hydrates edit pills into the chat response. However, the tool invocation widget was also remaining visible, leading to duplicate UI. - Set presentation to Hidden on tool invocations that complete successfully with file edits in finalizeToolInvocation - Move file edit extraction before didExecuteTool so the presentation is set before the completion state transition triggers re-render - Add handling for ToolInvocationPresentation.Hidden in the render function of ChatToolInvocationPart (previously only checked HiddenAfterComplete) (Commit message generated by Copilot)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This should be good to use now and also lets use benefit from incremental builds Co-authored-by: Copilot <copilot@github.com>
* Fix Copilot CLI mission control remote flows Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Refine mission control remote events Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This triggers our watcher scripts, causing an extra recompile Co-authored-by: Copilot <copilot@github.com>
* Move files into Copilot CLI specific folders Co-authored-by: Copilot <copilot@github.com> * Fixes * Fixes * Fix tests --------- Co-authored-by: Copilot <copilot@github.com>
* feat: load deferred repo hooks after session creation in CopilotCLISessionService Co-authored-by: Copilot <copilot@github.com> * Fix tests --------- Co-authored-by: Copilot <copilot@github.com>
Don't emit extensionsApiProposals if it has not changed
Switch to esbuild's native watcher for building extensions
* Add event emitters for workspace folder and worktree changes; improve cache management Co-authored-by: Copilot <copilot@github.com> * Update extensions/copilot/src/extension/chatSessions/common/chatSessionWorktreeService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update extensions/copilot/src/extension/chatSessions/vscode-node/copilotCLIChatSessions.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Enhance chat session item handling by eagerly including changes for refreshed sessions to improve UX Co-authored-by: Copilot <copilot@github.com> * Change defaults * Fixes Co-authored-by: Copilot <copilot@github.com> --------- Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Add a sendEnhancedGHTelemetryEvent call (automode.routerDecisionRestricted) alongside the existing unrestricted routerDecision event. The restricted event includes: - hydraScores: JSON-encoded 4-dim capability scores - binaryScores: JSON-encoded binary classifier scores - chosenModel, candidateModels, chosenShortfall, stickyOverride - Per-class scores (scoreNeedsReasoning, scoreNoReasoning) - All fields from the existing unrestricted event
…d-telemetry copilot: emit router decision to restricted telemetry with prompt and full scores
…ol names (#312285) * fix: expand Chronicle session_files/refs tracking to match VS Code tool names * address review: add create_directory with dirPath extraction
Update distro commit to 0ba0ea82 Co-authored-by: vs-code-engineering[bot] <122617954+vs-code-engineering[bot]@users.noreply.github.com>
fix: open in vscode actioon for agents app --open-url short-circuits both the first-launch path and the second-instance path, preventing --folder-uri from being processed. This resulted in a blank window with no workspace. Replace --open-url with a new --open-chat-session <uri> CLI arg that flows through the normal window opening pipeline. After the folder is opened, windowsMainService forwards the session via IPC.
* cli plan widget improvements * address some comments and tests * address more comments
border animation in line
…l text (#312173) * test: add failing test for missing separator between phase commentary and final text When the Responses API streams a commentary message item followed by a final message item, the text from both items gets directly concatenated in the textAccumulator without any separator, producing e.g. 'Commentary text.Final text.' instead of properly separated text. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: insert separator between output items in Responses API stream When the Responses API streams multiple message output items (e.g. commentary followed by final), their text deltas were all accumulated into a single textAccumulator without any separator. This caused text like 'Commentary text.Final text.' instead of properly separated paragraphs. Track the output_index of the last text delta and emit a paragraph break (\n\n) when text arrives from a different output item. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * test: use last accumulated text instead of brittle index-from-end Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
copilot: remove InlineDocIntent and /doc command
Co-authored-by: Copilot <copilot@github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )